import request from '@/utils/request'

/**
 * 查询定时任务调度列表
 * @param {Object} query - 查询参数
 * @returns {Promise} 返回请求结果的Promise对象
 */
export function listJob(query) {
  return request({
    url: '/monitor/job/list',
    method: 'get',
    params: query
  })
}

/**
 * 查询定时任务调度详细信息
 * @param {string|number} jobId - 任务ID
 * @returns {Promise} 返回请求结果的Promise对象
 */
export function getJob(jobId) {
  return request({
    url: '/monitor/job/' + jobId,
    method: 'get'
  })
}

/**
 * 新增定时任务调度
 * @param {Object} data - 任务调度数据
 * @returns {Promise} 返回请求结果的Promise对象
 */
export function addJob(data) {
  return request({
    url: '/monitor/job',
    method: 'post',
    data: data
  })
}

/**
 * 修改定时任务调度
 * @param {Object} data - 任务调度数据
 * @returns {Promise} 返回请求结果的Promise对象
 */
export function updateJob(data) {
  return request({
    url: '/monitor/job',
    method: 'put',
    data: data
  })
}

/**
 * 删除定时任务调度
 * @param {string|number} jobId - 任务ID
 * @returns {Promise} 返回请求结果的Promise对象
 */
export function delJob(jobId) {
  return request({
    url: '/monitor/job/' + jobId,
    method: 'delete'
  })
}

/**
 * 修改任务状态
 * @param {string|number} jobId - 任务ID
 * @param {string|number} status - 状态值
 * @returns {Promise} 返回请求结果的Promise对象
 */
export function changeJobStatus(jobId, status) {
  // 构造请求数据
  const data = {
    jobId,
    status
  }
  return request({
    url: '/monitor/job/changeStatus',
    method: 'put',
    data: data
  })
}

/**
 * 定时任务立即执行一次
 * @param {string|number} jobId - 任务ID
 * @param {string} jobGroup - 任务组名
 * @returns {Promise} 返回请求结果的Promise对象
 */
export function runJob(jobId, jobGroup) {
  // 构造请求数据
  const data = {
    jobId,
    jobGroup
  }
  return request({
    url: '/monitor/job/run',
    method: 'put',
    data: data
  })
}
